@echo off
chcp 65001
setlocal enabledelayedexpansion

echo ======================================
echo    物业保洁系统编译脚本
echo ======================================
echo.

REM 检查Java环境
echo 1. 检查Java环境...
java -version >nul 2>&1
if %errorlevel% neq 0 (
    echo    ❌ Java未安装或未配置环境变量
    echo    请访问 https://adoptopenjdk.net/ 下载并安装Java 8或更高版本
    pause
    exit /b 1
)
echo    ✅ Java环境正常

REM 检查Maven环境
echo 2. 检查Maven环境...
mvn -version >nul 2>&1
if %errorlevel% neq 0 (
    echo    ❌ Maven未安装或未配置环境变量
    echo    请访问 https://maven.apache.org/ 下载并安装Maven 3.6+
    pause
    exit /b 1
)
echo    ✅ Maven环境正常

REM 检查Node.js环境
echo 3. 检查Node.js环境...
node --version >nul 2>&1
if %errorlevel% neq 0 (
    echo    ❌ Node.js未安装
    echo    请访问 https://nodejs.org/ 下载并安装Node.js 16+
    pause
    exit /b 1
)
echo    ✅ Node.js环境正常

REM 检查npm环境
echo 4. 检查npm环境...
npm --version >nul 2>&1
if %errorlevel% neq 0 (
    echo    ❌ npm未安装
    echo    请重新安装Node.js并确保包含npm
    pause
    exit /b 1
)
echo    ✅ npm环境正常

echo.
echo ======================================
echo    开始编译项目...
echo ======================================

REM 编译后端
echo.
echo [后端编译] 开始...
cd backend

echo    清理旧构建...
mvn clean >nul 2>&1

echo    编译并打包...
mvn compile package -DskipTests -q
if %errorlevel% neq 0 (
    echo    ❌ 后端编译失败！
    echo    正在尝试使用详细模式重新编译...
    mvn compile package -DskipTests
    pause
    exit /b 1
)

REM 检查JAR文件是否生成
if exist "target\property-cleaning-backend-1.0.0.jar" (
    echo    ✅ 后端编译成功！
    echo    JAR文件位置: %cd%\target\property-cleaning-backend-1.0.0.jar
) else (
    echo    ❌ 后端编译失败！JAR文件未找到
    pause
    exit /b 1
)

cd ..

REM 编译前端
echo.
echo [前端编译] 开始...
cd frontend

echo    安装依赖...
npm install --silent
if %errorlevel% neq 0 (
    echo    ❌ 前端依赖安装失败！
    pause
    exit /b 1
)

echo    编译项目...
npm run build
if %errorlevel% neq 0 (
    echo    ❌ 前端编译失败！
    pause
    exit /b 1
)

REM 检查构建文件
if exist "dist" (
    echo    ✅ 前端编译成功！
    echo    构建文件位置: %cd%\dist
) else (
    echo    ❌ 前端编译失败！构建文件未找到
    pause
    exit /b 1
)

cd ..

echo.
echo ======================================
echo    🎉 编译完成！
echo ======================================
echo.
echo 编译结果:
echo   ✅ 后端JAR: backend\target\property-cleaning-backend-1.0.0.jar
echo   ✅ 前端构建: frontend\dist\
echo.
echo 下一步操作:
echo   1. 启动后端: cd backend && java -jar target\property-cleaning-backend-1.0.0.jar
echo   2. 启动前端开发服务器: cd frontend && npm run dev
echo   3. 查看API文档: http://localhost:8080/swagger-ui.html
echo.
pause